/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is Forte for Java, Community Edition. The Initial
* Developer of the Original Code is Sun Microsystems, Inc. Portions
* Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved.
*/
package org.openide.util;
import org.openide.util.enum.QueueEnumeration;
/** Queue of objects. When there is no object in the queue the process
* is suspended till some arrives.
*
* @author Jaroslav Tulach
* @version 0.10, Feb 06, 1998
*/
public class Queue extends Object {
/** Queue enumeration */
private QueueEnumeration queue = new QueueEnumeration ();
/** Adds new item.
* @param o object to add
*/
public synchronized void put (Object o) {
queue.put (o);
notify ();
}
/** Gets an object from the queue. If there is no such object the
* thread is suspended until some object arrives
*
* @return object from the queue
*/
public synchronized Object get () {
for (;;) {
try {
return queue.nextElement ();
} catch (java.util.NoSuchElementException ex) {
try {
wait ();
} catch (InterruptedException ex2) {
}
}
}
}
}
/*
* Log
* 4 Gandalf 1.3 10/22/99 Ian Formanek NO SEMANTIC CHANGE - Sun
* Microsystems Copyright in File Comment
* 3 Gandalf 1.2 6/8/99 Ian Formanek ---- Package Change To
* org.openide ----
* 2 Gandalf 1.1 1/6/99 Jaroslav Tulach Change of package of
* DataObject
* 1 Gandalf 1.0 1/5/99 Ian Formanek
* $
*/